package com.edu.whty.entity.disk;

import com.edu.whty.common.constants.Constant;
import com.edu.whty.entity.base.BaseEntity;
import lombok.Data;
import org.apache.commons.lang.StringUtils;

import java.util.List;

/**
 * @desc	资源表实体类
 * @author	
 * @date	2014-5-14
 */
@Data
public class Resource extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/** 资源ID */
    private String resId;

    /** 资源标题 */
    private String title;

    /** 关键词 */
    private String keyword;

    /** 资源简介 */
    private String intro;

    /**
	 * 资源形式 : 1=实体资源; 2=网络资源; 3=天喻使用WPS网盘存储的资源
	 * essence专题资源来源：1-'个人空间' 2-'平台应用' 3-'资源上报' 4-'管理员导入' 默认为1-'个人空间'
	 * */
    private String resForm;

    /** URL资源地址 */
    private String url;

    /**所属工作站 */
    private String wid;

    /**目录id */
    private String dirId;

    /**目录ID数组**/
    private List<String> dirIds;

    private String dirName;
	/**
	 * 浙江-是否定价
	 */
	private String isPrice;

	/**
	 * 浙江详情地址：resSource=9时
	 */
	private String playUrl;

	/**
	 * 播放次数
	 */
	private Long playCount;
	/**
	 * 浙江平台标识
	 */
	private String isZj;

	public String getIsZj() {
		return isZj;
	}

	public void setIsZj(String isZj) {
		this.isZj = isZj;
	}

	public String getIsPrice() {
		return isPrice;
	}

	public void setIsPrice(String isPrice) {
		this.isPrice = isPrice;
	}

	public String getPlayUrl() {
		return playUrl;
	}

	public void setPlayUrl(String playUrl) {
		this.playUrl = playUrl;
	}

	public Long getPlayCount() {
		return playCount;
	}

	public void setPlayCount(Long playCount) {
		this.playCount = playCount;
	}

	/**
     * 云币定价
     */
    private Float price=0f;

	/**知识点**/
	private String knowledgePointIds;

    /**
     * 积分定价
     */
    private Float coin;

    /** 学段ID */
    private String periodId;

    private String periodName;

    /** 学科ID */
    private String subjectId;

    private String subjectName;

    /** 年级ID */
    private String gradeId;

    private String gradeName;

    /** 册别ID */
    private String volumeId;

    private String volumeName;

    /** 版本ID */
    private String editionId;

    private String editionName;

    /** 教材ID */
    private String textbookId;

    /** 教材名称 */
    private String textbookName;

    /** 教材章节ID */
    private String chapterId;

    private String chapterTitle;

    /** 课程ID */
    private String curriculumId;
    /**课程名称*/
    private String curriculumName;

    /** 附件ID */
    private Long fid;

	private Long viewCount; // 浏览次数

	private Long downCount; // 下载次数



    private List<String> chapterIdList;

    private String fileId;

    private String fileName;

    private String fileExt;

    private String fileSize;

    private Long fileLength;

    private String fileMd5;

    /** 转码文件ID列表 */
    private List<String> flashFileIdList;

    /** 缩略图文件名 */
    private String thumbnailFileName;

    /** 缩略图文件ID */
    private String thumbnailFileId;

    /** 缩略图文件大小 */
    private Long thumbnailFileLength;

	/**
	 * 下载地址
	 */
	private String downloadUrl;

    /**
	 * 资源预览地址
	 */
    private String previewUrl;

    /** 更具时间判断是否是新资源 9月1日  */
    private boolean ifNewRes = false;

    private String thumbnailUrl;

    private List<String> metadataIdList;

    private List<String> labelList; //资源标签列表

    private String userId;

    private String orgId;

    private String orgName;

    private String ownerStatus;

    private String publicStatus;

    private String cpresStatus;

    private String cpresId;

    private String ownerResId;

    /** cp资源申请时间 */
    private String applyTime;

    private List<String> teachMethods;

    private List<String> useCrowd;

    private List<String> useTimeTo;

    private List<String> resTypeIdChild;

    private String parentId;

    private String groupId;

    private List<String> groupIds;


    private String resTypeName;

    private String isDownloadFree;

    /** 优质资源:0非优质，1优质，2申请优质中 */
    private String optStatus;

    /** 上报信息 */
    private String reportId; // 上报记录ID
    private String reportedId; // 上报者用户ID
    private String reportedName; // 上报者用户名称
    private String reportedOrgId; // 上报者机构ID
    private String reportedOrgName; // 上报者机构名称
    private java.util.Date reportTime; // 上报时间
    private String recipientId; // 接收机构ID
    private String recipientName; // 接收机构名称
    private String auditStatus; // 审核状态
	private String checkStatus;//资源精粹审核状态
    private String auditDesc; // 审核意见
    private java.util.Date auditTime; // 审核时间
    private String reportType; // 上报类型: 0=个人资源上报; 1=机构资源上报
    private String productCode;//产品Code

	private String productName;

    /** 评价次数 */
    private Long commentCount;

    private Long likeCount; //点赞次数

    /** 评分 */
    private Float score;

    private String createTimestr;

    private String modifyTimestr;

    /** 社区资源属性 */
    private String resourceOwnerType; // 社区资源归属类型: 1=社区资源; 2=小组资源 ; 3=活动资源

    private String isRecommend; // 是否为社区推荐资源: 0=不是; 1=是

    private String portalAuditStatus; // 审核状态：0=未审核;1=已审核

    private String communityId; // 社区ID

    private String communityGroupId; // 社区小组ID

    private String communityResource; // 是否社区资源: 0=否; 1=是

    private List<String> resClassNameList; // 简单分类

    private String resTypeStr; //资源类型名称串

    private String isCollect; // 是否征集资源: 0=否; 1=是

    private String transFileStatuas; // '转码状态: 0=待转码; 1=已通知转码; 2=转码失败; 3=转码成功

	/**
	 * 资源格式 用于页面显示图标
	 */
	private String format;

	/**
	 * 新改版后的资源类型名称
	 */
	private String metadaName;

	private String orderBy;

	private String creatorName;

	/** 我的发布列表数据id */
	private String dataId;

	/** 我的发布列表数据发布时间 */
	private java.util.Date catalogueTime;

	/** 我的发布列表数据查询发布标识（1：发布到学校，2：发布到平台） */
	private String catalogueFlag;

	/** 我的发布列表数据资源类型 */
	private String typeName;


	private Integer top;//用于置顶字段

	/** 发布产品的类型 2:实体资源  1:网络资源 */
	private String productType;

	private String userName;

	/** 是否允许下载 */
	private String allowDownload;

	private String fileOfExt;

	/** 区域属性 */
	private String platformCode;

	/** 资源是否晒课 */
	private String issharecourse;

	/** 资源收藏数量 */
	private Long collectedCount;

	/**地区编码**/
	private String regionCode;

	/**考试科目ID**/
	private String examSubjectId;

	/**试卷年份**/
	private Integer examYear;

	/**试卷类型**/
	private String sjResTypeId;

	/**中高考试卷分类**/
	private String sjZGResTypeId;

	/**知识点**/
	private String knowledgePointId;

	private String regionName;

	private String examSubjectName;

	private String resSource; // 资源来源: 0=网盘; 1=文章; 2=名师工作室; 3=备受课; 4=网络教研
	/** 资源格式ID**/
	private String formatId;
	/**资源格式名称 **/
	private String formatName;
	/**语种id */
	private String languageId;
	/**语种名称 */
	private String languageName;

	private String publishStatus; //0=未发布，1=已发布
	/**教材目录ID */
	private String folderId;

	/**
	 * 教材目录name
	 */
	private String folderName;
	/**
	 * 父目录id
	 */
	private String folderPId;
	/**
	 * 是否是父目录
	 */
	private String isParent;

	private String areaCode; //区域编码

	/**简单分类id*/
	private String classificationId;
	/**简单分类名称*/
	private String classificationName;

	/**上传资源公开*/
	private String resPublic;

	protected String referFlag;
	/** 音视频转码任务ID */
	private String transformId;

	private String filePathRemote;

	/** 百度BOS key */
	private String bosKey;

	/** 阿里云存储 文件路径值 */
	private String ossKey;

	/**
	 * 移动云存储 文件路径值
	 * */
	private String eosKey;

	/**是否是文件处理中心数据：0不是 1是 **/
    private Integer isFileCenter;


	private Boolean officeTransFlag;

	private String transfromPath;

	private String html4Path;

	private String orgResSelectStatus;//机构资源教材目录查询时 传递特殊字符

	private String appId;

    /** 万达同步资源 */
    private String newzjdata;

    /**后台管理--创建机构资源时 资源打包状态*/
    private String packageStatus;

    /**资源传播数*/
    private String spreadCount;

    private String provideName;

	private String resTypeId;

	private List<String> resTypeIdList;

	private String resClassId;

	private String chapterIds;

	/**考点**/
	private List<String> pointIdList;

	private String pointIds;

	/**知识点**/
	private List<String> knowledgePointIdList;

	/**
	 * 海淀区资源频道tab类型(人文资源,科学资源,信息资源,学科资源,综合资源,名师资源)
	 * */
    private String tabTypeId;

    /**
     * 广东编目工具导入xml文件字段新增
     * @Author King-LBJ
     * @Description
     * @Date 2019/7/17 14:22
     **/
    private String catalog_xml_name;

    private String wpsFileExt;//WPS的文件的格式
    private Long wpsFileLength;//WPS的文件长度
    private String wpsFileSize;//WPS的文件大小（带单位的字符串）
    private String wpsFileId;//WPS的文件唯一标识

	/**
	 * 浙江：上报类型：1：学科资源上报，2：专题资源上报，3学科与专题资源上报
	 **/
	protected String reportCatalog;
	/**
	 * 浙江-试卷类型和中高考试卷类型组合
	 */
	private String resTypeIds;
	/**
	 * 浙江-用于记录社区复制资源的源资源Id
	 */
	private String oldResId;
	/**
	 * 浙江-微软officeKey
	 */
	private String officeKey;



	/**

	 * 浙江字段
	 */
	private String iscanDownload;
	/**
	 * 浙江字段
	 */
	private String iscanShare;
	/**
	 * 武汉使用
	 */

	private String downloadUrlHJY;

	private String previewUrlHJY;



    /**
     * 学校上报到机构时选择机构文件夹，在后台上报资源审核时查询所用
     * */
    private String orgFolderId;





	public String getFileId() {
		if((this.fileId == null || "".equals(this.fileId))
				&& this.wpsFileId != null && !"".equals(this.wpsFileId)){
			return this.wpsFileId;
		}
		return fileId != null ? fileId : "";
	}





	public String getFileName() {
		//如果是WPS文件则没有附件信息，文件名称返回title
		if((this.fileName == null || "".equals(this.fileName))
				&& Constant.RES_FROM_WPS.equals(this.resForm)){
			return this.title;
		}
		return fileName;
	}




	public String getFileExt() {
		if((this.fileExt == null || "".equals(this.fileExt))
				&& this.wpsFileExt != null && !"".equals(this.wpsFileExt)){
			return this.wpsFileExt;
		}
		return fileExt != null ? fileExt : "";
	}

	//设置文件类型
	public void setFileExt(String fileExt) {
		this.fileExt = fileExt;
		if (StringUtils.isNotBlank(fileExt)) {
			if (Constant.ioc_doc.contains(fileExt) || "wps".equals(fileExt)) {
				this.fileOfExt = "doc";
			}else if (Constant.ioc_pdf.contains(fileExt)) {
				this.fileOfExt = "pdf";
			}else if (Constant.ioc_html.contains(fileExt)) {
				this.fileOfExt = "html";
			}else if (Constant.ioc_ppt.contains(fileExt)) {
				this.fileOfExt = "ppt";
			}else if (Constant.ioc_image.contains(fileExt)) {
				this.fileOfExt = "image";
			}else if (Constant.ioc_movie.contains(fileExt)) {
				this.fileOfExt = "movie";
			}else if (Constant.ioc_xls.contains(fileExt)) {
				this.fileOfExt = "xls";
			}else if (Constant.ioc_txt.contains(fileExt)) {
				this.fileOfExt = "txt";
			}else if (Constant.ioc_music.contains(fileExt)) {
				this.fileOfExt = "music";
			}else{
				this.fileOfExt = "file";
			}
		}else {
			this.fileOfExt = "file";
		}
	}

	public String getFileSize() {
		if((this.fileSize == null || "".equals(this.fileSize))
				&& this.wpsFileSize != null && !"".equals(this.wpsFileSize)){
			return this.wpsFileSize;
		}
		return fileSize;
	}


	public Long getFileLength() {
		if(this.fileLength == null && this.wpsFileLength != null){
			return this.wpsFileLength;
		}
		return fileLength;
	}


	/**
	 * 获取产品格式
	 * @return
	 */
	public String getFormat() {
		if(StringUtils.isBlank(format)){
			return Constant.getFileFormat(getFileName()==null?getTitle():getFileName());
		}else{
			return format;
		}
	}






	/**
	 * 上报选择了T_SPECIAL_RESOURCE_CATALOG
	 */
	private String catalogId;
	/**
	 *
	 */
	private String tSpecialResourcesId;


}
